#ifndef _SIQ_TYPEDEF_
#define _SIQ_TYPEDEF_

#include "CPxTime2a.h"

typedef union _SIQ { //带品质描述的单点信息 DIQ
	struct {
		#if (IEC_ENDIAN  == IEC_LITTLE_ENDIAN)
			uint8_t SPI : 1 ; //SPI（1bit）＝ 0：ON（开）＝1：OFF（合）
			uint8_t RES : 3 ; //RES（3bit）：保留
			uint8_t BL  : 1 ; //BL（1bit）＝ 0：未被闭锁 ＝1：被闭锁
			uint8_t SB  : 1 ; //SB（1bit）＝ 0：未被取代 ＝1：被取代
			uint8_t NT  : 1 ; //NT （1bit）＝ 0：当前值 ＝1：非当前值
			uint8_t IV  : 1 ; //IV（1bit） ＝0：有效 ＝1：无效
		#else 
			uint8_t IV  : 1 ; //IV（1bit） ＝0：有效 ＝1：无效
			uint8_t NT  : 1 ; //NT （1bit）＝ 0：当前值 ＝1：非当前值
			uint8_t SB  : 1 ; //SB（1bit）＝ 0：未被取代 ＝1：被取代
			uint8_t BL  : 1 ; //BL（1bit）＝ 0：未被闭锁 ＝1：被闭锁
			uint8_t RES : 3 ; //RES（3bit）：保留
			uint8_t SPI : 1 ; //SPI（1bit）＝ 0：ON（开）＝1：OFF（合）
		#endif
	}part ;

	uint8_t val;
}SIQ_t;


typedef struct _SIQ0T {
	SIQ_t   SIQ ;
}
SIQ0T_t;


typedef struct _SIQ24T {
	SIQ_t   SIQ ;
	struct CP24Time2a time;
}
SIQ24T_t;


typedef struct _SIQ56T {
	SIQ_t   SIQ ;
	struct CP56Time2a time;
}
SIQ56T_t;


#endif